import { TASK_MODE } from "@/constants/other-keys"
import { TaskBaseInfo } from "./task"

export interface CreateOrUpdateTaskData extends TaskBaseInfo {
  /** task_param */
  task_param: {
    task_config: TaskConfig
    episode_config: EpisodeConfig
    test_config: TestConfig
    save_config: SaveConfig
  }
}

// 任务基本信息
export interface TaskConfig {
  /** 任务模式 */
  mode: TASK_MODE
  resources: {
    // 是否开启分布式
    distributed_enable: boolean
    // GPU数
    gpu_num: number | undefined
  }
}
// 训练配置
export interface EpisodeConfig {
  // 最大轮数
  max_episode: number | undefined
  // 批次数量
  batch_num: number | undefined
}
// 测试参数
export interface TestConfig {
  test_enable: boolean
}
// 保存配置
export interface SaveConfig {
  // 算法模型
  algorithm_model: {
    // 保存开关
    save_enable: boolean
  }
}

export interface EvalProcessEvaData {
  // image
  type: string
  // 评估图标位置
  path?: string
  // map数据
  MAP: number
}

export interface TrainProcessEvaData {
  // 准确度
  loss: number
  // 召回率
  recall: number
  // map数据
  MAP: number
}
